#pragma once
#include <iostream>
#include <memory>
#include "Calculator.hpp"
using namespace std;

class Factory
{
public:
    shared_ptr<Calculator::Request> BuildCalRequest()
    {
        return make_shared<Calculator::Request>();
    }
    shared_ptr<Calculator::Request> BuildCalRequest(int data_x, int data_y, char oper)
    {
        return make_shared<Calculator::Request>(data_x, data_y, oper);
    }
    shared_ptr<Calculator::Response> BuildCalResponse()
    {
        return make_shared<Calculator::Response>();
    }
    shared_ptr<Calculator::Response> BuildCalResponse(int result, int code)
    {
        return make_shared<Calculator::Response>(result, code);
    }
};